/**
 * @author 徐楠
 * @date 2022/3/27 19:58
 * @version 1.0
 */

package com.xunan.likou;

public class RangeSummationTwo {
    public static void main(String[] args) {
        int[][] ops = {{2, 2}, {4, 3}};
        int result = maxCount(3, 3, ops);
        System.out.println(result);

    }

    /**
     * 由于每次都是对 0≤i<a 和 0≤j<b 进行操作，因此每次操作都会包含点 (0, 0)，最后的最大值一定出现在位置 (0,0) 上。
     * <p>
     * 问题转换为：什么范围内的数与位置 (0, 0) 上的值相等，即什么范围会被每一次操作所覆盖。
     * <p>
     * 不难发现，在所有的 ops[i] 中的横纵坐标 (x, y) 与左上角 (0,0) 形成的区域面积可确保被每次操作覆盖，x * y 即是答案。
     */
    public static int maxCount(int m, int n, int[][] ops) {
        int mina = m, minb = n;
        /**
         * op[0]    op[1]
         * 2         2
         * 4         3
         * ..        ..
         *
         */
        for (int[] op : ops) {
            mina = Math.min(mina, op[0]);
            minb = Math.min(minb, op[1]);
        }
        return mina * minb;
    }
}
